package Server;

/*
 * File:    MonitorLabel2.java
 * Coms:    gestiona la actividad de los threads de la valla 2. En este caso 4: VallaSecundariaLabel
 */

/**
 * @author Daniel Cabrera Ebana - 686013
 * @author Alberto Sanchez Romero - 662385
 * @since
 */
public class MonitorLabel2 {
	private int elementos = 0;

	public MonitorLabel2() {
	}

	// operaciones
	/**
	 * Añadir elemento al contador interno del monitor. Realiza un notify()
	 * 
	 * 
	 */

	synchronized void addcolaValla() {

		elementos++;
		notify();

	}

	/**
	 * Elimina un elemento del contador interno del monitor
	 * 
	 * 
	 */
	synchronized void quitacolaValla() {

		if (elementos > 0) {
			elementos--;
		}

	}

	/**
	 * Metodo que provoca que un el thread que lo invoca se duerma( wait() ) si
	 * no hay imagenes que mostrar
	 * 
	 * 
	 */
	synchronized void getElem() {

		while (elementos == 0) {

			try {
				wait();
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}
}
